package com.sun.umbrella.service.bns.role;


import com.sun.umbrella.domain.query.RoleInfoQuery;
import com.sun.umbrella.domain.bo.RoleInfoBO;
import com.sun.umbrella.domain.vo.ChangeRolePermissionVO;
import com.sun.umbrella.domain.vo.RoleSaveOrUpdateVO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

/**
 * @description: 角色信息接口业务层
 * @author: Jay
 * @date: 2018-04-09 16:30
 * @version: V1.0
 */
public interface RoleInfoService {


    /**
     * 分页查询角色信息
     *
     * @param roleInfoQuery
     * @param pageable
     * @return
     */
    Page<RoleInfoBO> queryRoleInfoList(RoleInfoQuery roleInfoQuery, Pageable pageable);


    /**
     * 新增角色信息
     *
     * @param roleSaveOrUpdateVO
     * @return
     */
    Boolean saveRoleInfo(RoleSaveOrUpdateVO roleSaveOrUpdateVO);


    /**
     * 编辑更新角色信息
     *
     * @param roleSaveOrUpdateVO
     * @return
     */
    Boolean updateRoleInfo(RoleSaveOrUpdateVO roleSaveOrUpdateVO);


    /**
     * 启用 或 禁用
     *
     * @param roleSaveOrUpdateVO
     * @return
     */
    Boolean enableRoleInfo(RoleSaveOrUpdateVO roleSaveOrUpdateVO);


    /**
     * 删除角色
     *
     * @param roleSaveOrUpdateVO
     * @return
     */
    Boolean deleteRoleInfo(RoleSaveOrUpdateVO roleSaveOrUpdateVO);


    /**
     * 分配角色对应的资源权限
     *
     * @param changeRolePermissionVO
     * @return
     */
    Boolean changeRolePermission(ChangeRolePermissionVO changeRolePermissionVO);
}
